# Customise this file, documentation can be found here:
# https://github.com/fastlane/fastlane/tree/master/fastlane/docs
# All available actions: https://docs.fastlane.tools/actions
# can also be listed using the `fastlane actions` command

# Change the syntax highlighting to Ruby
# All lines starting with a # are ignored when running `fastlane`

# If you want to automatically update fastlane if a new version is available:
# update_fastlane

# This is the minimum version number required.
# Update this, if you use features of a newer version
fastlane_version "2.62.1"

default_platform :ios

platform :ios do
  before_all do
  end

  def screenshots
    snapshot
    frameit(white: true)
  end

  desc "Deploy a new version to the App Store"
  lane :release do
    cocoapods(use_bundle_exec: false)
    increment_build_number
    ensure_git_branch()
    increment_version_number(bump_type: "patch")
    cert
    match(type: "appstore", readonly: true)
    build_app(workspace: "AlphaWallet.xcworkspace", scheme: "AlphaWallet", xcargs: "-allowProvisioningUpdates")
    commit_version_bump(message: "Version Bump", force: true)
    deliver(force: true)
    push_to_git_remote
  end

  desc "Screenshots"
  lane :screenshots do
    screenshots
  end

  lane :travis_tests do
    cocoapods(use_bundle_exec: false)
    run_tests(
      workspace: "AlphaWallet.xcworkspace",
      scheme: "AlphaWalletTests",
      device: "iPhone X",
      clean: false
    )
  end

  lane :tests do
    cocoapods(use_bundle_exec: false)
    run_tests(
      workspace: "AlphaWallet.xcworkspace",
      scheme: "AlphaWalletTests",
      devices: ["iPhone 5s", "iPhone X", "iPad Pro (12.9-inch)"],
      clean: false
    )
  end

  # You can define as many lanes as you want

  desc "Upload a build for TestFlight and submission"
  lane :upload do
    cocoapods(use_bundle_exec: true)

    build_app(workspace: "AlphaWallet.xcworkspace", scheme: "AlphaWallet",
           xcargs: "-allowProvisioningUpdates",
           export_method: "app-store",
           export_xcargs: "-allowProvisioningUpdates",
           export_options: {
              signingStyle:  "automatic",
           },
           skip_package_dependencies_resolution: true,
           disable_package_automatic_updates: true
    )
    deliver
  end

  after_all do |lane|
    # This block is called, only if the executed lane was successful

    # slack(
    #   message: "Successfully deployed new App Update."
    # )
  end

  error do |lane, exception|
    # slack(
    #   message: exception.message,
    #   success: false
    # )
  end
end


# More information about multiple platforms in fastlane: https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Platforms.md
# All available actions: https://docs.fastlane.tools/actions

# fastlane reports which actions are used. No personal data is recorded.
# Learn more at https://github.com/fastlane/fastlane#metrics
